+++ /dev/null
----
-# SPDX-License-Identifier: MIT OR LGPL-2.0-or-later
-# SPDX-FileCopyrightText: 2018 Claudio André <claudioandre.br@gmail.com>
-env:
- es2021: true
-extends: 'eslint:recommended'
-plugins:
- - jsdoc
-rules:
- array-bracket-newline:
- - error
- - consistent
- array-bracket-spacing:
- - error
- - never
- array-callback-return: error
- arrow-parens:
- - error
- - as-needed
- arrow-spacing: error
- block-scoped-var: error
- block-spacing: error
- brace-style: error
- # Waiting for this to have matured a bit in eslint
- # camelcase:
- # - error
- # - properties: never
- # allow: [^vfunc_, ^on_, _instance_init]
- comma-dangle:
- - error
- - arrays: always-multiline
- objects: always-multiline
- imports: always-multiline
- functions: never
- comma-spacing:
- - error
- - before: false
- after: true
- comma-style:
- - error
- - last
- computed-property-spacing: error
- curly:
- - error
- - multi-or-nest
- - consistent
- dot-location:
- - error
- - property
- eol-last: error
- eqeqeq: error
- func-call-spacing: error
- func-name-matching: error
- func-style:
- - error
- - declaration
- - allowArrowFunctions: true
- indent:
- - error
- - 4
- - ignoredNodes:
- # Allow not indenting the body of GObject.registerClass, since in the
- # future it's intended to be a decorator
- - 'CallExpression[callee.object.name=GObject][callee.property.name=registerClass] > ClassExpression:first-child'
- # Allow dedenting chained member expressions
- MemberExpression: 'off'
- jsdoc/check-alignment: error
- jsdoc/check-param-names: error
- jsdoc/check-tag-names: error
- jsdoc/check-types: error
- jsdoc/implements-on-classes: error
- jsdoc/tag-lines:
- - error
- - any
- - startLines: 1
- jsdoc/require-jsdoc: error
- jsdoc/require-param: error
- jsdoc/require-param-description: error
- jsdoc/require-param-name: error
- jsdoc/require-param-type: error
- key-spacing:
- - error
- - beforeColon: false
- afterColon: true
- keyword-spacing:
- - error
- - before: true
- after: true
- linebreak-style:
- - error
- - unix
- lines-between-class-members:
- - error
- - always
- - exceptAfterSingleLine: true
- max-nested-callbacks: error
- max-statements-per-line: error
- new-parens: error
- no-array-constructor: error
- no-await-in-loop: error
- no-caller: error
- no-constant-condition:
- - error
- - checkLoops: false
- no-div-regex: error
- no-empty:
- - error
- - allowEmptyCatch: true
- no-extra-bind: error
- no-extra-parens:
- - error
- - all
- - conditionalAssign: false
- nestedBinaryExpressions: false
- returnAssign: false
- no-implicit-coercion:
- - error
- - allow:
- - '!!'
- no-invalid-this: error
- no-iterator: error
- no-label-var: error
- no-lonely-if: error
- no-loop-func: error
- no-nested-ternary: error
- no-new-object: error
- no-new-wrappers: error
- no-octal-escape: error
- no-proto: error
- no-prototype-builtins: 'off'
- no-restricted-globals: [error, window]
- no-restricted-properties:
- - error
- - object: Lang
- property: copyProperties
- message: Use Object.assign()
- - object: Lang
- property: bind
- message: Use arrow notation or Function.prototype.bind()
- - object: Lang
- property: Class
- message: Use ES6 classes
- no-restricted-syntax:
- - error
- - selector: >-
- MethodDefinition[key.name="_init"] >
- FunctionExpression[params.length=1] >
- BlockStatement[body.length=1]
- CallExpression[arguments.length=1][callee.object.type="Super"][callee.property.name="_init"] >
- Identifier:first-child
- message: _init() that only calls super._init() is unnecessary
- - selector: >-
- MethodDefinition[key.name="_init"] >
- FunctionExpression[params.length=0] >
- BlockStatement[body.length=1]
- CallExpression[arguments.length=0][callee.object.type="Super"][callee.property.name="_init"]
- message: _init() that only calls super._init() is unnecessary
- - selector: BinaryExpression[operator="instanceof"][right.name="Array"]
- message: Use Array.isArray()
- no-return-assign: error
- no-return-await: error
- no-self-compare: error
- no-shadow: error
- no-shadow-restricted-names: error
- no-spaced-func: error
- no-tabs: error
- no-template-curly-in-string: error
- no-throw-literal: error
- no-trailing-spaces: error
- no-undef-init: error
- no-unneeded-ternary: error
- no-unused-expressions: error
- no-unused-vars:
- - error
- # Vars use a suffix _ instead of a prefix because of file-scope private vars
- - varsIgnorePattern: (^unused|_$)
- argsIgnorePattern: ^(unused|_)
- no-useless-call: error
- no-useless-computed-key: error
- no-useless-concat: error
- no-useless-constructor: error
- no-useless-rename: error
- no-useless-return: error
- no-whitespace-before-property: error
- no-with: error
- nonblock-statement-body-position:
- - error
- - below
- object-curly-newline:
- - error
- - consistent: true
- multiline: true
- object-curly-spacing: error
- object-shorthand: error
- operator-assignment: error
- operator-linebreak: error
- padded-blocks:
- - error
- - never
- # These may be a bit controversial, we can try them out and enable them later
- # prefer-const: error
- # prefer-destructuring: error
- prefer-numeric-literals: error
- prefer-promise-reject-errors: error
- prefer-rest-params: error
- prefer-spread: error
- prefer-template: error
- quotes:
- - error
- - single
- - avoidEscape: true
- require-await: error
- rest-spread-spacing: error
- semi:
- - error
- - always
- semi-spacing:
- - error
- - before: false
- after: true
- semi-style: error
- space-before-blocks: error
- space-before-function-paren:
- - error
- - named: never
- # for `function ()` and `async () =>`, preserve space around keywords
- anonymous: always
- asyncArrow: always
- space-in-parens: error
- space-infix-ops:
- - error
- - int32Hint: false
- space-unary-ops: error
- spaced-comment: error
- switch-colon-spacing: error
- symbol-description: error
- template-curly-spacing: error
- template-tag-spacing: error
- unicode-bom: error
- wrap-iife:
- - error
- - inside
- yield-star-spacing: error
- yoda: error
-settings:
- jsdoc:
- mode: typescript
-globals:
- ARGV: readonly
- Debugger: readonly
- GIRepositoryGType: readonly
- globalThis: readonly
- imports: readonly
- Intl: readonly
- log: readonly
- logError: readonly
- print: readonly
- printerr: readonly
- window: readonly
- TextEncoder: readonly
- TextDecoder: readonly
- console: readonly
- setTimeout: readonly
- setInterval: readonly
- clearTimeout: readonly
- clearInterval: readonly
-parserOptions:
- ecmaVersion: 2022